In conjunction with many devices, such as e.g. network elements of a data transfer network, there is a need to maintain a configuration data structure which expresses an up-to-date configuration the device. In a case where the device is a network element, the configuration data structure may express for example the configurations of e.g. shapers, schedulers, egress ports, ingress ports, forwarding tables, access control lists, routing protocol parameters, border gateway protocol “BGP” peers, software implemented processes, and/or other physical entities and/or immaterial entities of the network element. The network element can be for example an Internet Protocol “IP” router, an Ethernet switch, a multiprotocol label switching “MPLS” switch, a network element for a software defined network “SDN”, an Asynchronous Transfer Mode “ATM” switch, and/or a packet optical switch.
A traditional way to maintain the above-mentioned configuration data structure is to add incremental change descriptors indicative of changes of the configuration to the configuration data structure and to update the whole configuration data structure to correspond to the prevailing configuration in response to a need to update the configuration data structure. The need to update the configuration data structure may take place for example when the amount of the change descriptors reaches a pre-determined limit, i.e. the list of the change descriptors becomes inconveniently long. The configuration data structure can be updated by requesting functional entities of the device to report their configurations and by re-constructing the configuration data structure on the basis of the information reported by the functional entities. An inconvenience related to this approach is that changes cannot be made to the configuration during the above-described update process, and thus the configuration has to be frozen during the update process.
Another known way to maintain the above-mentioned configuration data structure is to maintain a model of the device so that the configuration of the model is all the time an exact copy of the configuration of the device. In this case, an auxiliary configuration data structure that corresponds to a desired time instant can be constructed off-line with the aid of the model and the configuration data structure can be updated on the basis of the auxiliary configuration data structure and the change descriptors related to changes made to the configuration after the above-mentioned time instant. An inconvenience related to this approach is that maintaining the model consumes resources of the device because in many cases the model is quite complex since the functional entities of the device have to be modelled in a sufficiently detailed way.